const mysql = require("mysql2");

const {
  DATABASE_NAME,
  DATABASE_USER,
  DATABASE_PASSWORD,
  SERVER_NAME,
  DATABASE_HOST,
  DATABASE_PORT,
} = require("../config/server");

// 1.创建一个连接池
const connectionPool = mysql.createPool({
  host: DATABASE_HOST,
  port: DATABASE_PORT,
  database: DATABASE_NAME,
  user: DATABASE_USER,
  password: DATABASE_PASSWORD,
  connectionLimit: 10,
});

// 2.获取连接是否成功 【做一个测试】
// getConnection可以从connectionPool里面拿到一个连接
connectionPool.getConnection((err, connection) => {
  // 2.1.判断是否有错误信息
  if (err) {
    console.log("获取连接失败~", err);
    return;
  }
  // 2.2 获取连接，尝试从数据库中建立连接
  // 相当于.connect()能执行的话，后续就可以执行SQL语句了
  connection.connect((err) => {
    if (err) {
      console.log("和数据库交互失败", err);
    } else {
      console.log(`${SERVER_NAME}数据库连接成功~`);
    }
  });
});

// 3.获取连接池中的连接对象（promise）
const connection = connectionPool.promise();

// 4.导出连接对象
module.exports = connection;
